70 research outputs found

    Measuring Qualities for OSGi Component-Based Applications

    Get PDF
    International audienceComponent-based software engineering (CBSE) begins to reach a certain level of maturity. Indeed, for the development of complex applications the use of component paradigm has become common. Therefore, the evaluation of the quality of these applications becomes necessary. In this context, the use of metrics is considered very important. Several metrics specific to component-based applications have been proposed. However, any of these metrics gained the consensus of the CBSE community and mainly there is no proposed tool to support them. As a large part of frameworks for component-based application development is based on object-oriented technology, we propose to use some object-oriented (OO) metrics to evaluate component-based applications produced with this kind of framework. Indeed, these metrics became a standard in OO community. So, they are well-defined, well-known and empirically validated. To identify which object-oriented metrics are useful for the evaluation of component-based applications, we have conducted an experimental study on 10 OSGi applications. This study also gives us the opportunity to discuss on the respect by OSGi developers of some properties pointed out by the literatur

    Software Architecture Constraints as Customizable, Reusable and Composable Entities

    Get PDF
    International audienceOne of the major advantages of component-based software engineering is the ability for developers to reuse and assemble software entities to build complex software. Whereas decomposition of software into components has been and is largely addressed for what concerns the business (functional) part of applications, this is not yet the case for what concerns their documentation (non-functional) part. In this pa- per, we propose a new and original solution to express component-based software non-functional documentation, and we will focus more espe- cially on architecture constraints, which formalize parts of architecture decisions, as executable, customizable, reusable and composable build- ing blocks represented by components. Component-based applications using business and constraint components can be modeled with CLACS, a dedicated ADL which is also introduced in the paper. Architecture constraints can be executed at design-time within CLACS. CLACS is implemented as a plugin in the Eclipse IDE

    Measuring Qualities for OSGi Component-Based Applications

    Get PDF
    International audienceComponent-based software engineering (CBSE) begins to reach a certain level of maturity. Indeed, for the development of complex applications the use of component paradigm has become common. Therefore, the evaluation of the quality of these applications becomes necessary. In this context, the use of metrics is considered very important. Several metrics specific to component-based applications have been proposed. However, any of these metrics gained the consensus of the CBSE community and mainly there is no proposed tool to support them. As a large part of frameworks for component-based application development is based on object-oriented technology, we propose to use some object-oriented (OO) metrics to evaluate component-based applications produced with this kind of framework. Indeed, these metrics became a standard in OO community. So, they are well-defined, well-known and empirically validated. To identify which object-oriented metrics are useful for the evaluation of component-based applications, we have conducted an experimental study on 10 OSGi applications. This study also gives us the opportunity to discuss on the respect by OSGi developers of some properties pointed out by the literatur

    Composition-centered architectural pattern description language

    Get PDF
    International audienceArchitectural patterns are important artefacts containing specialized design knowledge to build good-quality systems. Complex systems often exhibit several architectural patterns in their design which leads to the need of architectural pattern composition. Unfortunately, information about the composition of patterns tend to be vaporized right after the composition process which causes problems of traceability and reconstructability of patterns. This paper proposes a pattern description language that first, facilitates several types of pattern merging operation and second, allows the traceability of pattern composition. More specifically, the approach consists of a proper description of pattern that supports composition operations and a two-step pattern design process that helps to preserve pattern composition information

    Évolution du logiciel

    No full text

    Contractualisation de l'évolution architecturale de logiciels à base de composants (une approche pour la préservation de la qualité)

    No full text
    De toutes les étapes qui constituent le processus de maintenance, l'étape de compréhension d'une application avant son évolution, et l'étape de vérification de sa progression et de sa non régression après évolution sont de loin les plus coûteuses. Dans cette thèse, je présente une approche qui diminue les coûts associés à ces deux étapes, pour des applications conçues à l'aide de composants. Dans cette approche, les liens unissant les attributs qualité d'une application et les décisions architecturales sont documentés formellement. J'ai développé un environnement d'assistance à l'évolution, qui exploite cette documentation, pour d'une part, garantir sa mise à jour et d'autre part, notifier au développeur les effets possibles sur les exigences qualité des changements architecturaux proposés. Cette documentation forme ainsi un contrat dit d'évolution. Il s'agit d'un accord entre l'architecte de l'application et le responsable de son évolution. Le premier doit expliciter ses décisions de conception, sous la forme d'un ensemble de contraintes, afin qu'elles puissent être respectées lors du développement et de l'évolution. Le second doit respecter ce contrat afin de bénéficier d'une garantie de préservation de la qualité initialement requise. Ceci permet de réduire les coûts associés aux tests de non-régression sur l'aspect non-fonctionnel. Cette même documentation est utilisée pour tracer toutes les décisions architecturales tout au long du processus de développement d'un logiciel. Il est possible, ainsi, de vérifier, à une étape donnée du processus, la non-altération de toutes les décisions prises dans les étapes en amont.Among all activities in the maintenance process, application understanding before evolution, and checking progression and non-regression after evolution are by far the most expensive. In this thesis, I present an approach which aims at reducing costs associated to these two activities for component-based applications. In this approach, links unifying quality attributes of the application to architectural decisions are formally documented. I developed an environment for evolution assistance, which uses this documentation. It ensures on the one hand that this documentation is updated, and on the other, it notifies application evolvers the possible effects of her/his changes on quality requirements. This documentation forms thus a contract, said an evolution contract. It represents an agreement between the application architect and its evolver. The first should make explicit her/his design decisions, in the form of a set of constraints that should be respected during development and evolution. The second should respect this contract in order to gain the guaranty of preserving initial quality requirements. This allows to reduce costs associated to regression testing at the non-functional aspect. This documentation is used for tracing all architecture decisions throughout a software development process. It is possible thus to check in a given stage of this process, the non-alteration of decisions made in upstream stages. This traceability of decisions has as a goal to make persistent quality attributes, which are origins of these decisions, throughout the stages of a software life cycle.LORIENT-BU (561212106) / SudocSudocFranceF

    Proposition d'une méthode et d'un outil pour le développement d'applications Web-riches

    No full text
    De nos jours, le traitement de l'information par l'intermédiaire d'applications web est largement adopté. Les avantages de ces applications ne sont plus, aujourd'hui, à démontrer et leur adoption massive par les entreprises ou par les administrations est un fait indéniable. Nous remarquons, par exemple, la forte émergence d'applications et de systèmes collaboratifs de gestion de contenus en ligne, de syndication, d'importation et d'exportation de données. En plus du développement de nouvelle applications web, les entreprises doivent, maintenant, faire face aux demandes de transformations, ou de pseudo migration, des applications de type desktops vers le mode web. Ainsi, des milliers d'applications de différents domaines sont appelées à être déployées sur le web. Ainsi, dans un futur proche, nous n'aurons plus besoin d'installer de logiciels sur nos ordinateurs ni même d'y stocker des fichiers. En effet, d'ores-et-déjà, tous ces services peuvent être rendus par le web 2.0. Chaque application ou presque a son pendant en ligne, qu'il s'agisse de retoucher une image, de faire du montage vidéo, de convertir des fichiers, de créer des documents, etc. L'objectif de cette thèse, dans le cadre d'une collaboration entre alkante (société spécialisée dans le conseil et l'ingénierie des technologies de l'information) et le valoria, est d'offrir un cadre (outils et méthodes) pour faciliter, dans le paradigme composant, le développement et l'évolution d'applications web. Mon premier travail a consisté à proposer un protocole de migration permettant un passage, en douceur, d'un processus de développement classique à un processus de développement à base de composants logiciels. Ce protocole a rendu possible la réutilisation de codes existants et a permis, au développe urs, de se familiariser avec les concepts et les bases du développement à base de composant:p logiciels. Une fois cette migration effectuée, j'ai proposé une nouvelle approche pour la modélisation d'applications web dans un contexte purement composant. Cependant, une autre question liée à la maintenance et aux coûts d'évolution se posait. Les applications web sont particulièrement sujettes à de nombreuses évolutions, très régulières dans le temps. Afin de maîtriser l'évolution des applications développées et pour réduire les coûts de maintenance, j'ai utilisé une solution appelée contrats d'évolution.Nowadays, information processing via web applications is widel y adopted. The advantages of these applications are already demonstrated massivel y by enterprises and administrations. We notice for example, the emergence of collaborative content management systems and rss syndication systems. Ln addition to the development of new web applications, companies should take into consideration the transformation requirements or the pseudo-migration, of desktop llke applications into the web. What's more, many applications across different domains have been slated for web deployment. Consequentially, ln the near future, users will no longer have to install software on their machines, nor retain files locall y. Ln effect, all of these services can be provided through web 2.0. Currentl y, many applications have online equivalents whether retouching images, editing video, converting files, creating documents, etc. Ln a collaboration between alkante sas and valoria, the main objective of this thesis is to provide a framework (tools and methods) to facilitate the development and evolution of web applications through a component-based paradigm. My first work consisted of proposing a migration protocol to facilitate the transition from a classic development process to a component-based process. This protocol allowed the reuse of existing code and familiarized developers with component development concepts. Once this migration was successful, 1 proposed a new approach to model web applications ln purel y component-based context. At the same time, 1 addressed another challenge related to the maintenance and evolution cost of web applications: often, they are subject to numerous and periodic evolutions. Ln oroer to streamline the evolution of these applications and to reduce the cost of their maintenance, 1 used a solution called "evolution contracts."LORIENT-BU (561212106) / SudocSudocFranceF

    Un processus de sélection de composants logiciels multi-niveaux

    No full text
    Le paradigme composant propose de construire un système à partir d'éléments faiblement couplés et pour la plupart déjà existants. Le taux de réutilisation ainsi atteint entraîne une diminution des délais et des coûts de développement. Pour faire face à la complexité croissante des applications, les entreprises sont de plus en plus obligées d'avoir recours à des composants commerciaux "sur étagère", fournis par des tierces personnes, et dont la nature même impose de repenser profondément le cycle de développement d'un logiciel. Il n'est plus possible de spécifier un besoin ou une architecture sans se demander s'il existe sur le marché un composant capable de satisfaire le premier ou de s'intégrer dans la seconde. Dans ce contexte, une activité voit son importance renforcée : la sélection de composants. Cette activité est sensible: une mauvaise définition des besoins associée à une mauvaise sélection des composants peut conduire à des catastrophes financières, voire même humaines dans certains cas. Elle est de plus très coûteuse car elle impose le parcours de marchés comportant des milliers de composants, décrits avec des formats potentiellement très différents. La sélection devient au final très consommatrice en temps, au point de menacer les gains que conférait à l'origine ce type d'approche. La seule solution pour espérer maintenir ces gains est de disposer d'un mécanisme de sélection qui soit autant que possible automatisé. Dans cette thèse je propose un mécanisme qui permet de sélectionner, parmi une vaste bibliothèque de composants, le candidat qui répond le mieux à un besoin spécifique, aussi bien sur le plan fonctionnel que non-fonctionnel. L'originalité de cette approche est de permettre une sélection itérative en s'appuyant sur des niveaux de description des besoins de plus en plus d\'etaillés. A cette fin, ce mécanisme intègre des résultats de travaux provenant de domaines variés tels que la recherche de composants, le sous-typage et les métriques de qualité, au sein d'un unique concept: le composant recherché.Component-Based Software Engineering allows to build a system from reusable pre-existing commercial off-the-shelf (COTS) components. The two immediate potential benefits for such an approach are reduced development costs and shorter time-to-market. For this reason, more and more software applications are built using COTS rather than being developed from scratch, as this is something that fewer and fewer companies can afford. However, due to the intrisic nature of COTS as black-box units put into markets by third party publishers, we must rethink software development life-cycle in depth. In fact, it becomes impossible to specify requirements without asking if the marketplace provides COTS that can satisfy them. And one cannot specify an architecture without asking if there exist components to integrate it. In such a context, component selection becomes particularly important. So important that a bad requirements definition associated to a poor selection of components can lead to major financial failure, and sometimes human ones. There are also extra costs due to the investigation of hundreds of candidates disseminated into several different markets and libraries, not to mention the diversity of components' description formats. Finally, this phase can become so time-consuming that it may annihilate the initial promise of costs and time reductions. Therefore, the only solution to maintain these gains is to have a selection process that would be well-defined, repeatable, and as much automated as possible. In this thesis I propose a mechanism that allows to select, among a vast library of candidates, the one that is the best for a specific need, functionally as well as non-functionally. The originality of this approach is to allow an iterative selection by using more and more precise requirements' description levels. To achieve this goal, this mechanism incorporates the results of works from various domains such as component search and retrieval, subtyping and quality metrics, into a unique concept: target component.LORIENT-BU (561212106) / SudocSudocFranceF

    Dynamic Evolution for Distributed Objects

    No full text
    This paper presents a way to apply an unanticipated evolution on distributed objects at run-time. This kind of dynamic evolution provides a new way of making distributed applications evolve dynamically (at run-time). So, new client programs may add behavior to existing server objects, that is visible only to them or shared with others; old clients may continue to use the non evolved version of the server. Our approach consists of a mixture of the adapter pattern and of delegation. To apply our approach, we implemented a system calledAdapter for the Java and C # languages that does not require the addition of new language constructs. We shall discuss the principles underlying our approach and present the Adapter system
    corecore